<!DOCTYPE html>
<html>

<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
	<meta name="theme-color" content="#33474d">
	<title>shell 结构以及执行 | 失落的乐章</title>
	<link rel="stylesheet" href="/css/style.css" />
	
      <link rel="alternate" href="/atom.xml" title="失落的乐章" type="application/atom+xml">
    
</head>

<body>

	<header class="header">
		<nav class="header__nav">
			
				<a href="/archives" class="header__link">Archive</a>
			
				<a href="/tags" class="header__link">Tags</a>
			
				<a href="/atom.xml" class="header__link">RSS</a>
			
		</nav>
		<h1 class="header__title"><a href="/">失落的乐章</a></h1>
		<h2 class="header__subtitle">技术面前，永远都是学生。</h2>
	</header>

	<main>
		<article>
	
		<h1>shell 结构以及执行</h1>
	
	<div class="article__infos">
		<span class="article__date">2017-10-12</span><br />
		
		
			<span class="article__tags">
			  	<a class="article__tag-link" href="/tags/shell/">shell</a>
			</span>
		
	</div>

	

	
		<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;写第一个 shell 脚本</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div></pre></td><td class="code"><pre><div class="line">[root@192 ~]<span class="comment"># cd /usr/local/sbin</span></div><div class="line">[root@192 sbin]<span class="comment"># vim first.sh</span></div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;加入内容</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div></pre></td><td class="code"><pre><div class="line"><span class="meta">#!/bin/bash</span></div><div class="line"><span class="comment">#this is my first script.</span></div><div class="line"><span class="comment">#written by yanyi.</span></div><div class="line">date</div><div class="line"><span class="built_in">echo</span> <span class="string">"Hello woeld!"</span></div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;shell 脚本通常都是以 .sh 为后缀的。这个并不是说不带 .sh 这个脚本就不能执行，只是大家的一个习惯。所以，以后发现了 .sh 为后缀的文件那么它可能是一个 shell 脚本。first.sh 中第一行要以 “<strong>#!/bin/bash</strong>” 开头，代表的意思是，该文件使用的是 bash 语法。如果不设置该行，虽然 shell 脚本也可以执行，但是不符合规范。如果把这个脚本放到一个默认 shell 并非 bash 的系统里，那么这个脚本很有可能是不能成功执行的，因为 bash 和其他的 shell 不兼容。 # 表示注释，这个符号后面跟一些该脚本的相关注释内容以及作者和创建日期或者版本等。当然这些注释并非必须的，也可以省略掉，但是不建议省略。因为随着工作时间的逐渐过渡，很有肯能忘记该脚本是用来干什么的，以及什么时候写的。所有写上注释是有必要的。另外，系统管理员并非只有有一个人，如果是其他管理员查看脚本，看不懂会很郁闷。</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;执行脚本</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">[root@192 sbin]<span class="comment"># sh first.sh</span></div></pre></td></tr></table></figure>
<p><figure class="figure"><img src="https://github.com/hcldirgit/image/blob/master/shell%20%E7%BB%93%E6%9E%84%E4%BB%A5%E5%8F%8A%E6%89%A7%E8%A1%8C/01.png?raw=true" alt=""></figure></p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;其实 shell 脚本还有另一种执行方法：</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">[root@192 sbin]<span class="comment"># ./first.sh</span></div></pre></td></tr></table></figure>
<p><figure class="figure"><img src="https://github.com/hcldirgit/image/blob/master/shell%20%E7%BB%93%E6%9E%84%E4%BB%A5%E5%8F%8A%E6%89%A7%E8%A1%8C/02.png?raw=true" alt=""></figure></p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;想要使用另一种方法运行 shell 脚本，前提是脚本本身有执行权限。所以，需要给脚本加一个 x 权限。另外使用 sh 命令去执行一个 shell 脚本的时候是可以加 -x 选项来查看这个脚本执行过程的，这样有利于我们调试这个脚本哪里出了问题：</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">[root@192 sbin]<span class="comment"># sh -x first.sh</span></div></pre></td></tr></table></figure>
<p><figure class="figure"><img src="https://github.com/hcldirgit/image/blob/master/shell%20%E7%BB%93%E6%9E%84%E4%BB%A5%E5%8F%8A%E6%89%A7%E8%A1%8C/03.png?raw=true" alt=""></figure></p>

	

	
		<span class="different-posts"><a href="/2017/10/12/Shell/4. shell 结构以及执行/" onclick="window.history.go(-1); return false;">⬅️ Go back </a></span>

	

</article>

	</main>

	<footer class="footer">
	<div class="footer-content">
		
	      <div class="footer__element">
	<p>Hi there, <br />welcome to my Blog glad you found it. Have a look around, will you?</p>
</div>

	    
	      <div class="footer__element">
	<h5>Check out</h5>
	<ul class="footer-links">
		<li class="footer-links__link"><a href="/archives">Archive</a></li>
		
		  <li class="footer-links__link"><a href="/atom.xml">RSS</a></li>
	    
		<li class="footer-links__link"><a href="/about">about page</a></li>
		<li class="footer-links__link"><a href="/tags">Tags</a></li>
		<li class="footer-links__link"><a href="/categories">Categories</a></li>
	</ul>
</div>

	    

		<div class="footer-credit">
			<span>© 2017 失落的乐章 | Powered by <a href="https://hexo.io/">Hexo</a> | Theme <a href="https://github.com/HoverBaum/meilidu-hexo">MeiliDu</a></span>
		</div>

	</div>


</footer>



</body>

</html>
